package com.kwdata.quartz.config;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;


/**
 * Swagger 文档配置
 *
 */
@Configuration
@EnableKnife4j
public class SwaggerConfig {
	// 创建Docket存入容器，Docket代表一个接口文档
	@Bean
	public Docket webApiConfig(){
		return new Docket(DocumentationType.SWAGGER_2)
				// 创建接口文档的具体信息
				.apiInfo(webApiInfo())
				// 创建选择器，控制哪些接口被加入文档
				.select()
				// 指定@ApiOperation标注的接口被加入文档
				.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
				.build();
	}

	// 创建接口文档的具体信息，会显示在接口文档页面中
	private ApiInfo webApiInfo(){
		return new ApiInfoBuilder()
				// 文档标题
				.title("互联互通接口文档")
				// 文档描述
				.description("互联互通接口文档")
				// 版本
				.version("1.0")
				// 联系人信息
				.contact(new Contact("xxx", "http://xxx.com", "xxx@qq.com"))
				// 版权
				.license("xxx")
				// 版权地址
				.licenseUrl("http://www.xxx.com")
				.build();
	}
}
